# coding: utf-8
import random
from wechatAPI import replyNews, Object, Query, LEANID, replyTextMessage

Products = Object.extend('Agm_Product_beta')
bigtosmall = lambda x: x.replace('BigPic', 'SmallPic').replace('.jpg', 's.jpg')


def replyInstruct(xml):
    items = []
    items.append({
        'url': 'http://m.top-racer.com/instruction',
        'title': u'音速风暴产品说明书',
        'description': u'音速风暴产品说明书',
        'picurl': 'http://m.top-racer.com/static/images/tu1.jpg'
    })
    products = Query(Products).exists('sm').find()
    random.shuffle(products)
    products = products[:7]
    for product in products:
        items.append({
            'url': u'http://m.top-racer.com/instruction?pid=%s' % product.id,
            'title': u'%s 产品说明书' % product.get('name'),
            'description': product.get('name'),
            'picurl': bigtosmall(product.get('img'))
        })
    return replyNews(xml,items)

def replyInstructVideo(xml):
    items = []
    items = [{
             'url': 'http://m.top-racer.com/video',
             'title': u'音速风暴视频专区',
             'description': u'音速风暴视频专区',
             'picurl': 'http://m.top-racer.com/static/images/tu1.jpg'
         },{
             'url': 'http://m.top-racer.com/video?cid=0&tid=0',
             'title': u'TR模拟系列 使用指导视频',
             'description': u'TR模拟系列 使用指导视频',
             'picurl': 'http://r2.ykimg.com/0541040854719D546A0A42045BD47F05'       
         },{
             'url': 'http://m.top-racer.com/video?cid=0&tid=1',
             'title': u'DTR数码系列 使用指导视频',
             'description': u'DTR数码系列 使用指导视频',
             'picurl': 'http://r3.ykimg.com/0541040855048CAE6A0A46045EE0BBC0'       
         },{
             'url': 'http://m.top-racer.com/video?cid=0&tid=2',
             'title': u'ASR智能系列 使用指导视频',
             'description': u'ASR智能系列 使用指导视频',
             'picurl': 'http://r1.ykimg.com/05420408573091936A0A4D2D9630FDE9'       
         },{
             'url': 'http://m.top-racer.com/video?cid=0&tid=3',
             'title': u'商用定制 相关指导视频',
             'description': u'商用定制 相关指导视频',
             'picurl': 'http://r2.ykimg.com/05410408570365E86A0A4A0458C7D91E'       
         },{
             'url': 'http://m.top-racer.com/video?cid=0&tid=4',
             'title': u'其他指导视频',
             'description': u'其他指导视频',
             'picurl': 'http://r2.ykimg.com/05410101573EB6156A0A4304564AB8D9'       
        }
    ]

    return replyNews(xml,items)

def replyShopProduct(xml):
    pass
    
def replyAutoResponderTip(xml):
    content = (u'您好,为了给您提供更好的客服服务,欢迎您参考以下的常见问题,回复相关序号进行了解\n\n'
    u'【01】音速风暴系列产品\n'
    u'【02】逻辑货运车系列产品\n')     
    return replyTextMessage(content, xml)

def replyAutoResponder(xml):
    #openid = xml.find('FromUserName').text
    #if openid not in ['ohCrcvlQMzCovAxALwzdNOs8yNf8', 'ohCrcvpGGtIBJTNo5LUpR2dfb-Us', 'ohCrcvngXDgu-CulbG2S2IDXYbt4', 'ohCrcvqJnQdBw1kAgkgzkFgP5ROQ']:
        #return
    key = xml.find('Content').text
    autoreply = {
        '01': (u'请输入序号了解以下问题:\n'
            u'【199】小车容易在飞天悬空区域冲出赛道\n'
            u'【198】组装后飞天轨道摇晃不稳定\n'
            u'【197】FT系列小车的刷片调节方法\n'
            u'【101】说明书丢失或找不到说明书\n'
            u'【102】不懂该如何拼装轨道\n'
            u'【103】360°圆环怎么拼装\n'
            u'【104】组装好后车子不能跑动的问题\n'
            u'【105】小车无法通过360°圆环\n'
            u'【106】手机/智能平板设备 如何下载“音速风暴app”\n'
            u'【107】ASR系列APP的使用方法\n'
            u'【108】控制器同时控制两个车的问题\n'
            u'【109】如何调整小车刷片的教导视频（包括车不跑及车跑动卡顿的问题）\n'
            u'【110】车子跑太快容易出轨的问题\n'
            u'【111】小车不跑，小车跑得慢\n'
            u'【112】关于商用轨道合作咨询的问题\n'
            u'【113】需要在线客服\n'),
        '02': (u'请输入序号了解以下问题:\n'
            u'【201】说明书丢失或找不到说明书\n'
            u'【202】不懂如何组装产品\n'
            u'【203】不懂产品怎么玩\n'
            u'【204】动力车跑出轨道\n'
            u'【205】货仓里的矿石卡住，下不来\n'
            u'【206】铲车在U型门卡住了\n'
            u'【207】铲车无法把矿石铲起\n'
            u'【208】动力车行驶缓慢/卡顿\n'
            u'【113】需要在线客服\n'),
        '199': (u'您好，小车容易在飞天悬空区域冲出赛道，有3个可能的原因：\n'
            u'①车底的刷片调的过高，导致小车里的磁铁离轨道太远，不能良好地吸住悬空轨道。\n'            u'②小车车速过快。您可以通过控制器底部的旋钮，来调节最高速度。对于新手或者幼龄玩家，可以把旋钮顺时针转到最紧，来降低最高速度。（重要提示：在悬空轨道的区域，不能使用控制器前端的极速按键。）\n'
            u'③ 悬空轨道的区域，安装不到位。\n'
            u'您也可以<a href="http://v.youku.com/v_show/id_XNDQzNzA2MDIyNA==.html">直接观看视频</a>，了解解决方法\n'),
        '198': (u'您好，轨道组装后摇晃不稳定，可能是悬空支架的没有安装正确，您可以参考以下视频2分30秒之后的内容，<a href="http://v.youku.com/v_show/id_XNDQzNzA2MDIyNA==.html">查看安装方法：</a>\n'),
        '197': (u'您好，您可以参考以下视频调整方法：<a href="https://v.youku.com/v_show/id_XNDQzMzI5OTgyNA==.html">点击查看视频</a>'),
        '101': (u'<a href="http://m.top-racer.com/instruction">产品说明书电子版</a>\n'
            u'您可以点击以上链接查看对应型号说明书或回复"说明书"了解详情'),
        '102': (u'您可以拿出说明书:\n'
            u'1.先看一下安装说明书里面的“配件区”区域，查看配件区里面每个板的图案和英文编号（轨道板的底面也都有一个对应英文编号）。\n'
            u'2.安装的时候看一下说明书的“轨道拼装图”区域。从主控板开始，从右往左走向，一个一个板对着英文编号和轨道图案装上去就可以了。\n'
            u'3.轨道拼装好了之后，看一下拼装图上面有一些P+Q，那些就是加高轨道板的区域。您按照说明书里面，把支架加高在对应位置。\n\n'
            u'您还可以点击微信公众号的会员中心里的“视频专区”-->“<a href="http://m.top-racer.com/video?cid=0&tid=0">套装拼装视频</a>”来观看安装教学视频。'),
        '103': (u'1.<a href="http://v.youku.com/v_show/id_XMTUzNjE4MTM2OA==.html">双环360度圆环的安装方法</a>(适用于TR-01,TR-02,TR-05,TR-06,TR-011,TR-012,TR-013,TR-014,TR-015)(ASR-06,ASR-07,ASR-08)\n'
            u'2.<a href="http://v.youku.com/v_show/id_XMTUzOTc4NTM5Ng==.html">并肩360度圆环的拼装方法</a>(TR-08)(ASR-01,ASR-02,ASR-03,ASR-05)'),
        '104': (u'您可以用以下步骤来排除车子为什么不能正常跑动\n'
            u'1.检查电源：看电源提示灯是否会亮，电源连接是否到位\n'
            u'2.（使用电动控制器时）检查主控板档位是否在电动档位\n'
            u'  （使用手摇控制器时）检查主控板档位是否在手摇档位\n'
            u'3.检查车底是否装有刷片，观看<a href="http://v.youku.com/v_show/id_XOTEyMTc1NjA4.html">车底刷版的调整</a>视频\n'
            u'4.检查轨道板之间组装是否紧实，无缝隙。\n\n'
            u'您也可以点击<a href="http://m.top-racer.com/trackCheck">1:43轨道故障排除</a>或<a href="http://m.top-racer.com/trackCheck1">1:64轨道故障排除</a>来解决问题'),
        '105': (u'您可以点击此链接去观看<a href="http://v.youku.com/v_show/id_XMjUzMzAzNDg3Ng==.html">通过360度圆环的技巧教学视频</a>'),
        '106': (u'点击链接，<a href="http://m.top-racer.com/downapp">进入下载界面</a>\n如果您使用的是安卓手机，请回复013,联系在线客服'),
        '107': (u'您可以点击下面的链接观看<a href="http://v.youku.com/v_show/id_XMTU2NDIwMjAwOA==.html">ASR的APP的使用方法视频</a>'),
        '108': (u'1.两个小车是否在同一条跑道上。\n'
            u'2.检查轨道上是否有装2个或2的倍数的交叉板。如果轨道上只有一个或者单数个交叉板，那么就算小车在不同的两条道上，一个控制器还是是能同时控制两个小车。\n\n'
            u'您也可以点击<a href="http://m.top-racer.com/trackCheck">1:43轨道故障排除</a>或<a href="http://m.top-racer.com/trackCheck1">1:64轨道故障排除</a>来解决问题'),
        '109': (u'您可以点击此链接去观看<a href="http://v.youku.com/v_show/id_XOTEyMTc1NjA4.html">车底刷片的调整及更换的教导视频</a>'),
        '110': (u'您可以\n'
            u'1.调整车底刷片，可参考此教学视频<a href="http://v.youku.com/v_show/id_XOTEyMTc1NjA4.html">调整及更换车底刷片的方法</a>\n'
            u'2.可以使用套装配备的黑色小卡扣卡在控制器上来控制车速，可参考此教学视频 电动控制器调速卡扣使用视频\n'
            u'3.过弯道时注意控制车速，在弯道处加些护栏\n\n'
            u'您也可以点击<a href="http://m.top-racer.com/trackCheck">1:43轨道故障排除</a>或<a href="http://m.top-racer.com/trackCheck1">1:64轨道故障排除</a>来解决问题'),
        '111': (u'您可以点击<a href="http://m.top-racer.com/trackCheck">1:43轨道故障排除</a>或<a href="http://m.top-racer.com/trackCheck1">1:64轨道故障排除</a>来解决问题'),
        '112': (u'您可以联系我们音速风暴市场推广部的吴小姐\n'
            u'QQ：2262985089\n电话：15815107567'),
        '113': (u'请点击微信公众号右下角的“会员中心”-“人工服务”\n'
            u'值班时间：周一至周日  8：10-11：30  13：30-17：30'),
        '201': (u'产品说明书电子版\n'
                u'您可以点击<a href="http://m.top-racer.com/instruction">这个链接</a>去查看对应型号的产品说明书'),
        '202': (u'1、您可以拿出说明书，扫描左边的“观看快速拼装视频”二维码，来观看拼装指导视频。\n'
                u'2、您还可以点击<a href="https://v.youku.com/v_show/id_XNDE4NDg1MTU5Ng==.html?spm=a2h3j.8428770.3416059.1">此处观看快速拼装视频</a>'),
        '203': (u'1、您可以拿出说明书，扫描右边的“观看玩法教学视频”二维码，来观看产品的玩法指导。\n'
                u'2、或者点击<a href="https://v.youku.com/v_show/id_XNDE4NDg1NzUwNA==.html?spm=a2h3j.8428770.3416059.1">此处观看玩法教学视频</a>。'),
        '204': (u'1、如果出现动力车底跑出轨道的情况，说明车底的导向柱并没有立起来，请把车底的白色导向柱扳成与车底成90度角。\n'
                u'2、您也可以观看<a href="https://v.youku.com/v_show/id_XNDIwMzg4MTMzMg==.html">货运车故障排除视频</a>，获取相关内容。'),
        '205': (u'1、如果货仓里的矿石卡住，那么需要您用手拨动下料口即可解决。\n'
                u'2、您也可以观看<a href="https://v.youku.com/v_show/id_XNDIwMzg4MTMzMg==.html">货运车故障排除视频</a>，获取相关内容。'),
        '206': (u'1、如果铲车在U型门卡住了，说明动力车底需要和轨道进行磨合。\n'
                u'您可以先把1号，2号，3号车壳从轨道上拿起来，然后把动力车放在轨道上完整地空跑4-5圈。\n'
                u'这样就可以让动力车和轨道良好的磨合。\n'
                u'2、如果动力车已经与轨道磨合好，那么请把铲车从U型门中取出，然后把3号铲车车壳放置在起始位置，并且把动力车放在起始板上，重新开始。\n'
                u'您也可以观看<a href="https://v.youku.com/v_show/id_XNDIwMzg4MTMzMg==.html">货运车故障排除视频</a>，获取相关内容。'),
        '207': (u'当发生铲车无法把矿石铲起的情况时，有两种可能的原因：\n'
                u'原因1：电池电量不足以支持动力车运行。\n'
                u'如果您观察到，小车在轨道的其他部分，也是运行十分缓慢，那么请更换一个新的电池。\n'
                u'原因2：铲车专用轨道里面的黄色翻斗，没有处于正确的位置。\n'
                u'铲车专用轨道里的黄色翻斗应该是倒向轨道一方的，请您用手把它扳至正确位置。\n'
                u'您也可以观看<a href="https://v.youku.com/v_show/id_XNDIwMzg4MTMzMg==.html">货运车故障排除视频</a>，获取相关内容。'),
        '208': (u'您可以用以下步骤来解决动力车缓慢/卡顿问题\n'
                u'1、动力车行驶缓慢，大概率是由于电池电量不足造成的。请尝试更换新电池，看是否能行驶顺畅。\n'
                u'2、动力车行驶卡顿，有可能是轨道表面或者轨道卡槽内部有杂物，请用干布擦拭表面附着的杂物。'),
    }
    if key in autoreply:
        return replyTextMessage(autoreply[key], xml)
    
if __name__ == '__main__':
    import leancloud
    from xml.etree.ElementTree import XML
    xml = XML(open('temp.xml').read())
    leancloud.init(LEANID, master_key='Q1SCs9WsR1XxBUm8ExkthOVb')
    ret = replyAutoResponder(xml)
    print ret
